خرید بک لینک
سلام و خسته نباشید
ابتدا عذر خواهی میکنم در مورد سوالات زیادی که این چن روزا میپرسم.
تا به حال به سایت های معروف ایران رفتین :
Digikala.com
aparat.com
Blogfa.com
و...
همونطور که میدونیم این سایت ها ابتدا ی سایت معمولی بودن ولی الآن دیگه واسه خودشون ی برند شدن.
الآن هرجا که بری دی جی کالا رو میشناسن و میدونن زمینه ی کاریش چیه.
به هرکس میگی فیلم ، آپارارت رو معرفی میکنه و ....

حالا سوالاتی که من دارم:
چی شد که اینا واسه خودشون برند شدن و معروف شدن؟
از چ روش هایی برای این کارها استفاده کردن؟
از چ نوع تبلیغاتی برای این کار استفاده کردن؟
آیا ایمیل های تبلیغاتی فرستادن ؟

من میخوام اطلاعاتی در مورد برند سازی بدست بیارم و راه های تبلیغ ی سایت رو بدونم.
چطوری بازدید ی سایت رو بالا ببرم؟

الآن به این آدرس برید.
http://www.stonetown.ir/
این ی شهر مجازی تو صنعت سنگ هستش.
من میخوام این سایت رو به همه ی فعالان صنعت سنگ معرفی کنم.
از چ روش هایی برای این کار استفاده کنم؟
منتظر پیشنهاداتتون هستم
ممنون

برچسب: نویسنده: استخدام کار تاريخ: شنبه 29 اسفند 1394 ساعت: 14:19

میتونید بصورت json یا serialize درش بیارید و در یک فیلد کاراکتری ذخیره کنید و بعد از بازیابی آنرا دوباره به حالت آرایه در بیاورید

البته اگر نیازی دارید کوئری روی آرایه ها انجام بدید بهتره کلا یک جدول دیگه بهش اختصاص بدید و بصورت رابطه یک به چند با جدول مادر انجامش بدید

البته در دیتابیس هایی postgresql قابلیت ذخیره آرایه به شیوه هایی موجوده Smile
ولی در mysql موجود نیست

برچسب: نویسنده: استخدام کار تاريخ: شنبه 29 اسفند 1394 ساعت: 14:19

همیشه حس میکردم یه چیزی یه جای از برنامم نامیزونه... چون پرفومنسش نسبت به برنامه های "خارجی" بزرگتر پایین بود
سورس برنامه های بقیه(ایرانیا بیشتر) رو هم که نگاه میکردم میدیدم که خیلی از اونا هم این مشکلو دارن...

بعد از کلی تحقیق بلخره یه مقاله از پروفسور Andrew T. Campbell پیدا کردم که توضح کاملی راجب Activity Lifecycle (باز و بسته شدن برنامه های اندروید) داده بود! اونم تو یک صفحه دره پیت و ساده Heart

شیوه درست صدا زدن Superclass ها در Activity:

کد:

// Called after onCreate has finished, use to restore UI state
@Override
public void onRestoreInstanceState(Bundle savedInstanceState)
{
super.onRestoreInstanceState(savedInstanceState); // Always call the superclass method at FIRST.

// Restore UI state from the savedInstanceState.
// This bundle has also been passed to onCreate.
// Will only be called if the Activity has been
// killed by the system since it was last visible.
}

// Called before subsequent visible lifetimes for an activity process.
@Override
public void onRestart()
{
super.onRestart(); // Always call the superclass method at FIRST.

// Load changes knowing that the Activity has already
// been visible within this process.
}

// Called at the start of the visible lifetime.
@Override
public void onStart()
{
super.onStart(); // Always call the superclass method at FIRST.

// Apply any required UI change now that the Activity is visible.
}

// Called at the start of the active lifetime.
@Override
public void onResume()
{
// Resume any paused UI updates, threads, or processes required
// by the Activity but suspended when it was inactive.

super.onResume(); // Always call the superclass method at LAST.
}

// Called to save UI state changes at the end of the active lifecycle.
@Override
public void onSaveInstanceState(Bundle savedInstanceState)
{
// Save UI state changes to the savedInstanceState.
// This bundle will be passed to onCreate and
// onRestoreInstanceState if the process is
// killed and restarted by the run time.

super.onSaveInstanceState(savedInstanceState); // Always call the superclass method at LAST.
}

// Called at the end of the active lifetime.
@Override
public void onPause()
{
// Suspend UI updates, threads, or CPU intensive processes
// that don't need to be updated when the Activity isn't
// the active foreground Activity.

super.onPause(); // Always call the superclass method at LAST.
}

// Called at the end of the visible lifetime.
@Override
public void onStop()
{
super.onStop(); // Always call the superclass method at FIRST.

// Suspend remaining UI updates, threads, or processing
// that aren't required when the Activity isn't visible.
// Persist all edits or state changes
// as after this call the process is likely to be killed.
}

// Sometimes called at the end of the full lifetime.
@Override
public void onDestroy()
{
// Clean up any resources including ending threads,
// closing database coections etc.

super.onDestroy(); // Always call the superclass method at LAST.
}

خلاصه مطلب: در متد های onRestoreInstanceState، OnStop, OnRestart, onStart، ابتدا باید Superclass صدا زده بشه و بعد کدهای شما قرار بگیره. اما در متدهای OnDestroy, OnPause, onSaveInstanceState, OnResume ابتدا باید کدهای شما قرار بگیره و بعد متد Superclass صدا زده بشه.

عدم رعایت این اولویت ها باعث کندی، crash کردن، memory leak، ناهماهنگی در UI، باگهای DataSaving و امثالش میشه... پس حتماً رعایت کنید.
(که کندی و ناهماهنگی UI ش شامل حال من میشد)

منبع: پروفسور Andrew T. Campbell
http://cs.dartmouth.edu/~campbell/cs65/l...ure05.html
اطلاعات بیشتر:
http://grepcode.com/file/repository.grep...ivity.java

آدمی در عالم خاکی نمی آید به دست / عالمی دیگر بباید ساخت وز نو آدمی

برچسب: نویسنده: استخدام کار تاريخ: شنبه 29 اسفند 1394 ساعت: 14:19

میتونید بصورت json یا serialize درش بیارید و در یک فیلد کاراکتری ذخیره کنید و بعد از بازیابی آنرا دوباره به حالت آرایه در بیاورید

البته اگر نیازی دارید کوئری روی آرایه ها انجام بدید بهتره کلا یک جدول دیگه بهش اختصاص بدید و بصورت رابطه یک به چند با جدول مادر انجامش بدید

البته در دیتابیس هایی postgresql قابلیت ذخیره آرایه به شیوه هایی موجوده Smile
ولی در mysql موجود نیست

برچسب: نویسنده: استخدام کار تاريخ: شنبه 29 اسفند 1394 ساعت: 9:41

همیشه حس میکردم یه چیزی یه جای از برنامم نامیزونه... چون پرفومنسش نسبت به برنامه های "خارجی" بزرگتر پایین بود
سورس برنامه های بقیه(ایرانیا بیشتر) رو هم که نگاه میکردم میدیدم که خیلی از اونا هم این مشکلو دارن...

بعد از کلی تحقیق بلخره یه مقاله از پروفسور Andrew T. Campbell پیدا کردم که توضح کاملی راجب Activity Lifecycle (باز و بسته شدن برنامه های اندروید) داده بود! اونم تو یک صفحه دره پیت و ساده Heart

شیوه درست صدا زدن Superclass ها در Activity:

کد:

// Called after onCreate has finished, use to restore UI state
@Override
public void onRestoreInstanceState(Bundle savedInstanceState)
{
super.onRestoreInstanceState(savedInstanceState); // Always call the superclass method at FIRST.

// Restore UI state from the savedInstanceState.
// This bundle has also been passed to onCreate.
// Will only be called if the Activity has been
// killed by the system since it was last visible.
}

// Called before subsequent visible lifetimes for an activity process.
@Override
public void onRestart()
{
super.onRestart(); // Always call the superclass method at FIRST.

// Load changes knowing that the Activity has already
// been visible within this process.
}

// Called at the start of the visible lifetime.
@Override
public void onStart()
{
super.onStart(); // Always call the superclass method at FIRST.

// Apply any required UI change now that the Activity is visible.
}

// Called at the start of the active lifetime.
@Override
public void onResume()
{
// Resume any paused UI updates, threads, or processes required
// by the Activity but suspended when it was inactive.

super.onResume(); // Always call the superclass method at LAST.
}

// Called to save UI state changes at the end of the active lifecycle.
@Override
public void onSaveInstanceState(Bundle savedInstanceState)
{
// Save UI state changes to the savedInstanceState.
// This bundle will be passed to onCreate and
// onRestoreInstanceState if the process is
// killed and restarted by the run time.

super.onSaveInstanceState(savedInstanceState); // Always call the superclass method at LAST.
}

// Called at the end of the active lifetime.
@Override
public void onPause()
{
// Suspend UI updates, threads, or CPU intensive processes
// that don't need to be updated when the Activity isn't
// the active foreground Activity.

super.onPause(); // Always call the superclass method at LAST.
}

// Called at the end of the visible lifetime.
@Override
public void onStop()
{
super.onStop(); // Always call the superclass method at FIRST.

// Suspend remaining UI updates, threads, or processing
// that aren't required when the Activity isn't visible.
// Persist all edits or state changes
// as after this call the process is likely to be killed.
}

// Sometimes called at the end of the full lifetime.
@Override
public void onDestroy()
{
// Clean up any resources including ending threads,
// closing database coections etc.

super.onDestroy(); // Always call the superclass method at LAST.
}

خلاصه مطلب: در متد های onRestoreInstanceState، OnStop, OnRestart, onStart، ابتدا باید Superclass صدا زده بشه و بعد کدهای شما قرار بگیره. اما در متدهای OnDestroy, OnPause, onSaveInstanceState, OnResume ابتدا باید کدهای شما قرار بگیره و بعد متد Superclass صدا زده بشه.

عدم رعایت این اولویت ها باعث کندی، crash کردن، memory leak، ناهماهنگی در UI، باگهای DataSaving و امثالش میشه... پس حتماً رعایت کنید.
(که کندی و ناهماهنگی UI ش شامل حال من میشد)

منبع: پروفسور Andrew T. Campbell
http://cs.dartmouth.edu/~campbell/cs65/l...ure05.html
اطلاعات بیشتر:
http://grepcode.com/file/repository.grep...ivity.java

آدمی در عالم خاکی نمی آید به دست / عالمی دیگر بباید ساخت وز نو آدمی

برچسب: نویسنده: استخدام کار تاريخ: شنبه 29 اسفند 1394 ساعت: 9:41

عرض ادب و احترام،
بنده میخوام قالب این سایت رو دریافت کنم، ولی نمیتونم، خیلی قشنگ برنامه نویسی شده:
http://mohsen-salehi.ir/
نرم افزار یا راهکاری خاصی دارید که بهم معرفی کنید?
سپاس فراوان

برچسب: نویسنده: استخدام کار تاريخ: شنبه 29 اسفند 1394 ساعت: 9:41

سلام و خسته نباشید
ابتدا عذر خواهی میکنم در مورد سوالات زیادی که این چن روزا میپرسم.
تا به حال به سایت های معروف ایران رفتین :
Digikala.com
aparat.com
Blogfa.com
و...
همونطور که میدونیم این سایت ها ابتدا ی سایت معمولی بودن ولی الآن دیگه واسه خودشون ی برند شدن.
الآن هرجا که بری دی جی کالا رو میشناسن و میدونن زمینه ی کاریش چیه.
به هرکس میگی فیلم ، آپارارت رو معرفی میکنه و ....

حالا سوالاتی که من دارم:
چی شد که اینا واسه خودشون برند شدن و معروف شدن؟
از چ روش هایی برای این کارها استفاده کردن؟
از چ نوع تبلیغاتی برای این کار استفاده کردن؟
آیا ایمیل های تبلیغاتی فرستادن ؟

من میخوام اطلاعاتی در مورد برند سازی بدست بیارم و راه های تبلیغ ی سایت رو بدونم.
چطوری بازدید ی سایت رو بالا ببرم؟

الآن به این آدرس برید.
http://www.stonetown.ir/
این ی شهر مجازی تو صنعت سنگ هستش.
من میخوام این سایت رو به همه ی فعالان صنعت سنگ معرفی کنم.
از چ روش هایی برای این کار استفاده کنم؟
منتظر پیشنهاداتتون هستم
ممنون

برچسب: نویسنده: استخدام کار تاريخ: شنبه 29 اسفند 1394 ساعت: 1:13

سلام

بالاخره PhpStorm در آخرین ورژنش که دیروز منتشر شد به صورت کاملا صحیح از زبان فارسی پشتیبانی می کنه و اون مشکل بهم ریختگی حروف هنگام ویرایش رو نداره .
فکر می کنم بهترین تغییری بود که می شد ایجاد کنن .

برچسب: نویسنده: استخدام کار تاريخ: جمعه 28 اسفند 1394 ساعت: 21:32

kalilix آفلاین
عضو جدید
**

ارسالها: 1
تاریخ عضویت: امروز
اعتبار: 0

تشکرها : 0
( 0 تشکر در 0 ارسال )

ارسال: #1
دو زبانه کردن با توجه بهIP در PHP

سلام
من میخوام یه سایت شخصی بسازم که دو زبانه باشه
ولی نمیدونم چجوری اطلاعات طرف بازدیدکننده چی هست که
بگم کدوم زبان باشه .
میخوام اگر کاربر از ایران وارد سایت شد زبان فارسی باشه
اگر جز ایران بود انگلیسی .

ممنون میشم اگر کسی بلد بود بگه .

امروز ۰۶:۲۱ عصر

برچسب: نویسنده: استخدام کار تاريخ: جمعه 28 اسفند 1394 ساعت: 21:32

همه رمزنگاریش میکنن و بعد وارد دیتابیس می کنن...

الگوریتمش هم برای سایتهای معمولی زیاد مهم نیست، چون اولاً یکطرفند(به زبان ساده Decrypt نمیشن)، دوماً برای crack کردنشون روزها و ماهها وقت نیازه
می تونی از روش های آماده مثل SHA512, MD6, Tiger, Haval, Whirlpool و امثالش استفاده کنی + salt

آدمی در عالم خاکی نمی آید به دست / عالمی دیگر بباید ساخت وز نو آدمی

برچسب: نویسنده: استخدام کار تاريخ: جمعه 28 اسفند 1394 ساعت: 8:27

Reza آفلاین
رضا شیخله
*****

ارسالها: 2,700
تاریخ عضویت: ۱۳۹۰ آبان ۱۶
اعتبار: 95

تشکرها : 2485
( 2164 تشکر در 1400 ارسال )

ارسال: #2
RE: رتبه بندی

کد:

select p_id, (sum(nums) / count(nums)) as _av from nums
group by p_id
order by _av desc

__________________________________________________________________________
-- - RezaWorkShop.ir - blog.RezaOnline.net

برچسب: نویسنده: استخدام کار تاريخ: جمعه 28 اسفند 1394 ساعت: 8:27

سلام و خسته نباشید به دوستان عزیز
به این کد من ی نیگا بندازین

کد PHP:

ini_set('session.save_path','path');session_start( );session_regenerate_id();$_SESSION['hamid']='sad';
echo
$_SESSION['hamid'];


این کد های من این ارور رو میده.

Waing: Unknown: open(pathsess_e3ihjmmkso1p05tu65vfuvcev5, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Waing: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (path) in Unknown on line 0

من وقتی از تابع session_regenerate_id(); استفاده کردنی این ارور رو دارم.
از این تابع هم برای امنیت بیشتر استفاده میکنم.
آیا ب نظرتون نیاز به استفاده از تابع session_regenerate_id(); هستش؟
چیکار کنم که این ارور برطرف بشه
ممنون

برچسب: نویسنده: استخدام کار تاريخ: جمعه 28 اسفند 1394 ساعت: 8:27

سلام و خسته نباشید به دوستان عزیز
به این آدرس ی سری بزنید.
http://www.zncms.ir
الآن دو ماهی میشه که دارم روی این جامعه مجازی کار میکنم بالاخره تموم شد.این جامعه مجازی در مورد صنعت سنگ هستش.
میخوام از تجربیات همه ی شما دوستان تو امنیت این پروژه کمک بگیرم.
ابتدا من بگم که چ کارایی رو برای امنیت این پروژه انجام دادم.

1- برای جلوگیری از حملات sql_injection از pdo استفاده کردم و تمام کوئری هام رو با استفاده از prepare اجرا کردم.
به نظرم برای جلوگیری از حملات sqlinjection همین قدر کافیه.
آیا راه حل دیگری به ذهنتان میرسد.

2-برای جلوگیری از حملات xss و امسال اینها از توابع زیر استفاده کردم
htmlentitis
striptags
htmlspeacialcharts
و برای امنیت بیشتر از کتاب خانه ی htmlpruf استفاده کردم.

3- برای جلوگیری از آپلود انواع شل به جای عکس از توابع gd استفاده کردم.
نام تصاویر به طور رندوم عوض میکنم و کاربر به هیچ عنوان نمیتونه بعد از آپلود تصویر نام تصویر رو حدث بزنه.
جلوی لیست دایرکتوری رو گرفتم و کاربر نمیتونه دایرکتوری هامو لیست کنه.

4-از ckeditor استفاده کردم ولی نمیشه باهاش آپلود کرد. ی خطایی میده که دقیق نمیدونم چیه؟
برای ckeditor از htmlpruf استفاده کردم.

5- برای ثبت نام و کارهایی از این قبیل از کپتا استفاده کردم.
کپتا رو خودم ساختم : ب نظرتون چطوریه؟ آیا حدث زدنش برای ربات ها آسونه یا نه؟

6- کنترل خطارو تو کل برنامه صفر کردم
7- url رو به طور کامل کنترل کردم.

بخش ثبت نام و ورود چ مشکلاتی داره؟
به نظرتون دیگه باید کجاهای پروژه رو چک کنم؟
آیا چیزی از یادم رفته که چک نکرده باشم؟
تو چنین پروژه هایی باید تمرکزم رو کجا بزارم؟
چ پیشنهاداتی برای امنیت بیشتر و بهتر دارین؟

ممنون از راهنمایی هاتون

برچسب: نویسنده: استخدام کار تاريخ: جمعه 28 اسفند 1394 ساعت: 0:25

سلام اساتید محترم

دوستان عزیز بنده یک اسکریپتک آپلود سنتر نوشتم و می خواهم همه فایل های بجز تصاویر به صورت غیر مستقیم ارائه شود یعنی کاربر وقتی صفحه دانلود رو دید بتونه فایل رو دانود کنه.

روش های مبتدی و پایه رو بلدم ؛ می خوام یک روش ایمن رو قوی رو اسکریپتم پیدا کنم. مثل پیکو فایل !
روشی می خواهم که حتی اگه کاربر به مسیر اصلی و پوشه فایل ها هم پی برد و تونست لینک مستقیم فایل رو وارد کرد ابتدا به صفحه دانلود ریداریکت بشه و سپس فایل رو دانلود کنه.

منتظر راه کارهای دوستان هستم.

+ اینترنت رو گشتم همش راه کارهای مبتدی بودن که با کمی وقت صرف کردن میشه به لینک مستقیم رسید!

برچسب: نویسنده: استخدام کار تاريخ: پنجشنبه 27 اسفند 1394 ساعت: 16:49

با سلام دوستان توی اینجا نوشته که حفاظت از سیستم فایل، این کد برای کجا استفاده میشه و عملکردش چگونه است؟
توی توضیحات گفته که نا امنه میشه بگید به درد کجای سایت میخوره و برای امن کردن باید چکار کنیم؟Angel

برچسب: نویسنده: استخدام کار تاريخ: پنجشنبه 27 اسفند 1394 ساعت: 12:44

پرش به انجمن:

برچسب: نویسنده: استخدام کار تاريخ: پنجشنبه 27 اسفند 1394 ساعت: 4:36

سلام،
بعد از حدود 5 سال درد و رنجی که بابت این موضوع کشیدم! بالاخره دوستان راه حلی براش پیدا کردن که بد نیست انتشار پیدا کنه...

1- در محل نصب نرم افزار فایل idea.properties رو پیدا کنید
2- با یک ادیتور مثل notepad بازش کنید و خط زیرُ به انتهای فایل اضافه کنید:

کد:

editor.new.rendering=true

3- یک بار phpstrom رو ببندید و دوباره باز کنید.

نکته: این امکان روی نسخه 9 به بالای نرم افزار کار میکنه.

آسان گیر بر خود کارها کز روی طبع، سخت می گیرد جهان بر مردمان سخت کوش

برچسب: نویسنده: استخدام کار تاريخ: پنجشنبه 27 اسفند 1394 ساعت: 2:44

<?php
require_once("photo_gallery/includes/phpMailer/class.phpmailer.php");
require_once("photo_gallery/includes/phpMailer/class.smtp.php");
require_once("photo_gallery/includes/phpMailer/language/phpmailer.lang-en.php");

$to_name = "name"; // masalan: user
$to = "email address"; //va emaile shoma
$subject = "Mail Test at " . strftime("%T", time());
$message = "This is a test.";
$message = wordwrap($message, 70);
$from_name = "name"; //masalan admin
$from = ""; // va email man

// PHPMailer's Object-oriented approach
$mail = new PHPMailer();

$mail->IsSMTP();
$mail->SMTPSecure = 'tls'; //in ro ham emtehan kardam vali bi fayede bood ----> (SSL) va port: 465 -or- (TLS) va port: 587
$mail->Host = "smtp.gmail.com"; // $mail->Host = "ssl://smtp.gmail.com:465"; or "smtp.gmail.com:465"
$mail->Port = 587; // 465 - 587 - 25
$mail->SMTPAuth = true;
$mail->Useame = "useame"; //email: [email protected] // masalan email man
$mail->Password = "password"; // password email


$mail->FromName = $from_name;
$mail->From = $from;
$mail->AddAddress($to, $to_name);
$mail->Subject = $subject;
$mail->Body = $message;

$result = $mail->Send();
echo $result ? 'Sent' : 'Error' . $mail->ErrorInfo;
?>

برچسب: نویسنده: استخدام کار تاريخ: پنجشنبه 27 اسفند 1394 ساعت: 2:44

پارتیشن بندی اساسا در دیتاهای بزرگ سبب افزایش سرعت (قابل ملموس) دستورات SELECT میشود.
و همانطور که از اسمش پیداست براین اساس هست که رکوردهای یک جدول را به چندین پارت کوچکتر تقسیم میکند و براساس نوع تقسیم بندی فقط در یک یا چند پارت کوچکتر عملیات جستجو را انجام میدهد که این نتیجه خوبی در دیتاهای بارکورد بالا خواهد داشت ، دیتابیس هایی چون MySQL و MSSQL چنین قابلیتی رو دارا هستند که بسادگی پارتیشن بندی در آنها ایجاد کرد اما برای PostgreSQL کمی داستان متفاوت است. در حقیقت پارتیشن بندی در PostgreSQL با قابلیت وراثت جداول از یکدیگر قابل پیاده سازی میباشد به این ترتیب که یک جدول مادر ساخته میشود و جدولهای فرزند متعدد (که بعنوان پارت های جدا هستند) از جدول مادر ارث بری میکنند و وظیفه ذخیره داده ها را برعهده دارند .

فرض کنید ما تیبلی برای ذخیره سازی مطالب وبلاگ در نظر میگیرم

کد:

CREATE TABLE "post" (
"id" serial NOT NULL,
"title" character varying(255) NOT NULL,
"user_id" integer NOT NULL,
"story" text NOT NULL,
"status" smallint NOT NULL DEFAULT '1'
);


فرض کنیم قرار است نهایتا 3000 رکورد در این تیبل ذخیره شود ، خب ما میخواهیم این تیبل را به سه پارت 1000 رکوردی تقسیم کنیم براساس کلید اصلی !

ابتدا سه جدول میسازیم که از جدول مادر ارث بری کنند و در هر جدول حوزه مجاز id را با دستور check مشخص میکنیم .

کد:

CREATE TABLE POST1000
(
PRIMARY KEY (id) ,
CHECK(id>0 AND id<=1000)
) INHERITS (post);

CREATE TABLE POST2000
(
PRIMARY KEY (id) ,
CHECK(id>1000 AND id<=2000)
) INHERITS (post);

CREATE TABLE POST3000
(
PRIMARY KEY (id) ,
CHECK(id>2000 AND id<=3000)
) INHERITS (post);

سپس در جدولهای فرزند برای کلید id ، ایندکس تعریف میکنیم

کد:

CREATE INDEX "post1000_id" ON "post1000" ("id");
CREATE INDEX "post2000_id" ON "post2000" ("id");
CREATE INDEX "post3000_id" ON "post3000" ("id");


حالا باید یک تریگر بنویسیم که در زمان insert کردن به جدول post ، مقادیر را به جدول های فرزند منتقل کند .

کد:

CREATE OR REPLACE FUNCTION post_trigger()
RETURNS TRIGGER AS $$
BEGIN
IF (NEW.id>0 and NEW.id<=1000) THEN
INSERT INTO post1000 VALUES (NEW.*);
ELSIF (NEW.id>1000 and NEW.id<=2000) THEN
INSERT INTO post2000 VALUES (NEW.*);
ELSIF (NEW.id>2000 and NEW.id<=3000) THEN
INSERT INTO post3000 VALUES (NEW.*);
ELSE
RAISE EXCEPTION 'id is not valid for insert in partition table!';
END IF;
RETURN NULL;
END;
$$
LANGUAGE plpgsql;

کد:

CREATE TRIGGER insert_post_trigger
BEFORE INSERT ON post
FOR EACH ROW EXECUTE PROCEDURE post_trigger();

حالا تعدادی رکورد مختلف اضافه میکنیم .

کد:

INSERT INTO "post" ("id", "title", "user_id", "story", "status")
VALUES
('1', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('2', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('3', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('1000', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('1001', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('1002', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('1999', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('2000', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('2001', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('2002', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('2003', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('2999', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('2998', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('3000', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('999', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ;

دقت کنید که پارامتر constraint_exclusion در فایل کانفیگ دیتابیس postgresql.conf برابر با ON باشد یا با دستور زیر اعمالش کنید

کد:

SET constraint_exclusion = on;


اکنون نتیجه کاملا گویاست !
[تصویر: postgresql_part.png]

ین آموزش روی رکوردهای پایین انجام شده ، دقت کنید که بستگی به دیتاهای شما دارد ، ترجیحا از پارتهای زیادی استفاده نکنید چون هر چند پارتیشن بندی سرعت خواندن را افزایش میدهد سرعت insert,update را کند میکند (البته نه به همان نسبت )

پس در استفاده از این قابلیت زیاده روی نکنید Smile
با تشکر ، رضا شیخله

لینک منبع : http://www.rezaonline.net/blog/howto-cre...erits.html

برچسب: نویسنده: استخدام کار تاريخ: چهارشنبه 26 اسفند 1394 ساعت: 10:31

سلام ..

من ازتون یه راهنمایی میخواستم

من زبان های html5,css3,js رو بلدم

الان میخوام php یاد بگیرم و بعد cms اختصاصی بنویسم

بنظرتون از چه راهی بهتر و سریع تر میتونم یاد بگیرم به غیر از کلاس
؟

الان تا حدودی echo و if و else و اینارو بلدم

م

برچسب: نویسنده: استخدام کار تاريخ: چهارشنبه 26 اسفند 1394 ساعت: 10:31

من از تمام مرورگر ها تست گرفتم و همشون همین مشکل رو دارند.
من چطوری باید از فایروال مطمئن بشم؟
حالا یه مشکل دیگه ای که هست اینه که من توی لوکال یه پروپرتی داخل کلاس دارم که حالا اصلا از هدر ها و این صحبتا استفاده نمی کنه و خیلی عادی یه مقدار رشته ای داخلش هست از نوع URL و بعد داخل متد ها وقتی میخوام ازش استفاده کنم مقداری داخل نیست به این صورت

کد PHP:

class test
{
public static
$test;
function
__construct()
{
$this::$test="www.example.ir";
}
function
test2()
{
echo
$this::$test;
}
}

و من نمی تونم مقدارشو ببینم.

برچسب: نویسنده: استخدام کار تاريخ: چهارشنبه 26 اسفند 1394 ساعت: 10:31

سلام ..

من ازتون یه راهنمایی میخواستم

من زبان های html5,css3,js رو بلدم

الان میخوام php یاد بگیرم و بعد cms اختصاصی بنویسم

بنظرتون از چه راهی بهتر و سریع تر میتونم یاد بگیرم به غیر از کلاس
؟

الان تا حدودی echo و if و else و اینارو بلدم

م

برچسب: نویسنده: استخدام کار تاريخ: سه شنبه 25 اسفند 1394 ساعت: 19:11

با چه مرورگری تست می کنی؟
در صفحه اول و خط اول فایل index.php ت یه echo معمولی بگیر ببین در حالت عادی هم خالیه:

کد PHP:

echo $_SERVER['HTTP_USER_AGENT'];


همچنین مطمعن شو که Firewall یا برنامه امنیتی هدر رو پاک نکنن
بعلاوه addon ها و extension های مرورگت رو چک کن که اونا هدر رو دستکاری نکرده باشن

آدمی در عالم خاکی نمی آید به دست / عالمی دیگر بباید ساخت وز نو آدمی

برچسب: نویسنده: استخدام کار تاريخ: سه شنبه 25 اسفند 1394 ساعت: 19:11

پارتیشن بندی اساسا در دیتاهای بزرگ سبب افزایش سرعت (قابل ملموس) دستورات SELECT میشود.
و همانطور که از اسمش پیداست براین اساس هست که رکوردهای یک جدول را به چندین پارت کوچکتر تقسیم میکند و براساس نوع تقسیم بندی فقط در یک یا چند پارت کوچکتر عملیات جستجو را انجام میدهد که این نتیجه خوبی در دیتاهای بارکورد بالا خواهد داشت ، دیتابیس هایی چون MySQL و MSSQL چنین قابلیتی رو دارا هستند که بسادگی پارتیشن بندی در آنها ایجاد کرد اما برای PostgreSQL کمی داستان متفاوت است. در حقیقت پارتیشن بندی در PostgreSQL با قابلیت وراثت جداول از یکدیگر قابل پیاده سازی میباشد به این ترتیب که یک جدول مادر ساخته میشود و جدولهای فرزند متعدد (که بعنوان پارت های جدا هستند) از جدول مادر ارث بری میکنند و وظیفه ذخیره داده ها را برعهده دارند .

فرض کنید ما تیبلی برای ذخیره سازی مطالب وبلاگ در نظر میگیرم

کد:

CREATE TABLE "post" (
"id" serial NOT NULL,
"title" character varying(255) NOT NULL,
"user_id" integer NOT NULL,
"story" text NOT NULL,
"status" smallint NOT NULL DEFAULT '1'
);


فرض کنیم قرار است نهایتا 3000 رکورد در این تیبل ذخیره شود ، خب ما میخواهیم این تیبل را به سه پارت 1000 رکوردی تقسیم کنیم براساس کلید اصلی !

ابتدا سه جدول میسازیم که از جدول مادر ارث بری کنند و در هر جدول حوزه مجاز id را با دستور check مشخص میکنیم .

کد:

CREATE TABLE POST1000
(
PRIMARY KEY (id) ,
CHECK(id>0 AND id<=1000)
) INHERITS (post);

CREATE TABLE POST2000
(
PRIMARY KEY (id) ,
CHECK(id>1000 AND id<=2000)
) INHERITS (post);

CREATE TABLE POST3000
(
PRIMARY KEY (id) ,
CHECK(id>2000 AND id<=3000)
) INHERITS (post);

سپس در جدولهای فرزند برای کلید id ، ایندکس تعریف میکنیم

کد:

CREATE INDEX "post1000_id" ON "post1000" ("id");
CREATE INDEX "post2000_id" ON "post2000" ("id");
CREATE INDEX "post3000_id" ON "post3000" ("id");


حالا باید یک تریگر بنویسیم که در زمان insert کردن به جدول post ، مقادیر را به جدول های فرزند منتقل کند .

کد:

CREATE OR REPLACE FUNCTION post_trigger()
RETURNS TRIGGER AS $$
BEGIN
IF (NEW.id>0 and NEW.id<=1000) THEN
INSERT INTO post1000 VALUES (NEW.*);
ELSIF (NEW.id>1000 and NEW.id<=2000) THEN
INSERT INTO post2000 VALUES (NEW.*);
ELSIF (NEW.id>2000 and NEW.id<=3000) THEN
INSERT INTO post3000 VALUES (NEW.*);
ELSE
RAISE EXCEPTION 'id is not valid for insert in partition table!';
END IF;
RETURN NULL;
END;
$$
LANGUAGE plpgsql;

کد:

CREATE TRIGGER insert_post_trigger
BEFORE INSERT ON post
FOR EACH ROW EXECUTE PROCEDURE post_trigger();

حالا تعدادی رکورد مختلف اضافه میکنیم .

کد:

INSERT INTO "post" ("id", "title", "user_id", "story", "status")
VALUES
('1', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('2', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('3', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('1000', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('1001', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('1002', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('1999', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('2000', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('2001', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('2002', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('2003', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('2999', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('2998', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('3000', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ,
('999', 'عنوان مطلب', '1', 'توضیحات مطلب', '1') ;

دقت کنید که پارامتر constraint_exclusion در فایل کانفیگ دیتابیس postgresql.conf برابر با ON باشد یا با دستور زیر اعمالش کنید

کد:

SET constraint_exclusion = on;


اکنون نتیجه کاملا گویاست !
[تصویر: postgresql_part.png]

ین آموزش روی رکوردهای پایین انجام شده ، دقت کنید که بستگی به دیتاهای شما دارد ، ترجیحا از پارتهای زیادی استفاده نکنید چون هر چند پارتیشن بندی سرعت خواندن را افزایش میدهد سرعت insert,update را کند میکند (البته نه به همان نسبت )

پس در استفاده از این قابلیت زیاده روی نکنید Smile
با تشکر ، رضا شیخله

لینک منبع : http://www.rezaonline.net/blog/howto-cre...erits.html

برچسب: نویسنده: استخدام کار تاريخ: سه شنبه 25 اسفند 1394 ساعت: 13:05

<?php

class Functions {
$date = $time = function mi_timeStamp($date_main, $shamsi = false) {;
explode( '-', $date )[2];
$year = list( $month, $day ) = explode( ' ', $date_main );
explode( ':', $time )[2];
[0];
$hour = ;
}

if ($shamsi) {
new jDateTime;
false;
true;
}

$timestamp = $date->mktime( $hour, $minute, $second, $month, $day, $year, true );

mktime( $hour, $minute, $second, $month, $day, $year );
$timestamp = ( 'Asia/Tehran' );
retu $timestamp;
}

function mi_to_sh($date_main, $type = 'l j F y', $lang = 'false') {
explode( ' ', $date_main )[1];
[0];
$date = ;
explode( '-', $date )[2];
[1];
[0];
$year = $time = ;
$second = explode( ':', $time )[2];
[1];
[0];
$date = $hour = $month = ;
$timestamp = $minute = $day = $date->mktime( $hour, $minute, $second, $month, $day, $year, false );
$date->date( $type, $timestamp );
$result = new jDateTime( $lang, true, 'Asia/Tehran' );
retu $result;
}

function trimDate($date, $output = 'date') {
$time = explode( ' ', $date )[1];
[0];
$date = ;

if ($output === 'date') {
$date;
}

retu $time;
}

function redirect($url, $time = false) {
if ($url === 'refer') {
$url = $_SERVER['HTTP_REFERER'];
}

$url = ;

if ($url == 404) {
$url = siteroot( ) . '404.php';

if (is_numeric( $time )) {
}
}

header( 'refresh:' . $time . ';url=' . $url . '' );
exit( );
}

function limit_word($text, $limit) {
$words = explode( ' ', $text, $limit );
$shown_string = '';
if (count( $words ) == $limit) = ' ... ';
implode( ' ', $words );
$shown_string = $words = array( );
retu $shown_string;
}

function num_to_text($num) {
$text = array( 1 => 'اول', 2 => 'دوم', 3 => 'سوم', 4 => 'چهارم', 5 => 'پنجم', 6 => 'ششم', 7 => 'هفتم', 8 => 'هشتم', 9 => 'نهم' );

if (array_key_exists( $num, $text )) {
$text[$num];
}

retu ;
}

function check_empty($attribute) {
}

function social_icons() {
(bool);
global $options;

$socials = '<div class='social clearfix pull-right'>';

if (self::check_empty( $options->FACEBOOK_URL )) {
'<span><a data-placement='top' data-toggle='tooltip' data-original-title='Facebook' title='' href='' . $options->FACEBOOK_URL . ''><i class='fa fa-facebook'></i></a></span>';
}

$socials .= ;

if (self::check_empty( $options->TWITTER_URL )) {
$socials .= '<span><a data-placement='top' data-toggle='tooltip' data-original-title='Twitter' title='' href='' . $options->TWITTER_URL . ''><i class='fa fa-twitter'></i></a></span>';

if (self::check_empty( $options->GOOGLEPLUS_URL )) {
$socials .= '<span><a data-placement='top' data-toggle='tooltip' data-original-title='GooglePlus' title='' href='' . $options->GOOGLEPLUS_URL . ''><i class='fa fa-google-plus'></i></a></span>';

if (self::check_empty( $options->INSTAGRAM_URL )) {
$socials .= '<span><a data-placement='top' data-toggle='tooltip' data-original-title='Instagram' title='' href='' . $options->INSTAGRAM_URL . ''><i class='fa fa-instagram'></i></a></span>';

if (self::check_empty( $options->LINKEDIN_URL )) {
'<span><a data-placement='top' data-toggle='tooltip' data-original-title='LinkedIn' title='' href='' . $options->LINKEDIN_URL;
}
}
}
}

$socials .= . ''><i class='fa fa-linkedin'></i></a></span>';

if (self::check_empty( $options->PINTEREST_URL )) {
$socials .= '<span><a data-placement='top' data-toggle='tooltip' data-original-title='Pinterest' title='' href='' . $options->PINTEREST_URL . ''><i class='fa fa-pinterest'></i></a></span>';
'<span><a data-placement='top' data-toggle='tooltip' data-original-title='RSS خوراک ' title='' href='' . siteroot( );
}

$socials .= . 'rss' target='_blank'><i class='fa fa-rss'></i></a></span>';
$socials .= '</div>';
retu $socials;
}

function shareItem($url, $title = false, $description = false) {
echo '
<div class='share'>
<div class='social facebook clearfix'><span><a href='http://www.facebook.com/sharer.php?u=' . $url . '' data-placement='top' data-toggle='tooltip' title='به اشتراک گذاری در Facebook' target='_blank' ><i class='fa fa-facebook'></i></a></span></div>
<div class='social googleplus clearfix'><span><a href='http://plus.google.com/share?url=' . $url . '' data-placement='top' data-toggle='tooltip' title='به اشتراک گذاری در GooglePlus' target='_blank' ><i class='fa fa-google-plus'></i></a></span></div>
<div class='social twitter clearfix'><span><a href='http://www.twitter.com/share?url=' . $url . '' data-placement='top' data-toggle='tooltip' title='به اشتراک گذاری در Twitter' target='_blank' ><i class='fa fa-twitter'></i></a></span></div>
';

if (( $title && $description )) {
'<div class='social linkedin clearfix'><span><a href='http://www.linkedin.com/shareArticle?mini=true&url=' . $url . '&title=' . $title . '&summary=' . $description . '' data-placement='top' data-toggle='tooltip' title='به اشتراک گذاری در LinkedIn' target='_blank' ><i class='fa fa-linkedin'></i></a></span></div>';
}

echo ;
echo '</div>';
}

function strip_only($str, $tags, $stripContent = false) {
if (!is_array( $tags )) {
if (strpos( $str, '>' ) !== false) {
explode;
}

'>';
str_replace( '<', '', $tags );
}

$tags = (true ? ( ) : array( $tags ));

while (true) {
if (end( $tags ) == '') {
array_pop( $tags );
foreach ($tags as $tag) {

if ($stripContent) {
$content = '(.+</' . $tag . '[^>]*>|)';
preg_replace( '#</?' . $tag . '[^>]*>' . $content . '#is', '', $str );
}
}
}

$str = $content = '';
}

retu $str;
}

function footer_content($area_no) {
global $options;
global $db;
global $stats;

$option_property = 'FOOTER_CONTENT_' . $area_no;
switch ($options->$option_property) {
case 'LINKS': {
include( INC_PATH . DS . 'footer_links.php' );
break;
switch () {
case 'CONTACT': {
include( INC_PATH . DS . 'footer_contact.php' );
break;
switch () {
case 'STATISTICS': {
INC_PATH . DS . 'footer_statistics.php';
}
}
}

case 'ABOUT': {
include( INC_PATH . DS . 'footer_about.php' );
break;
switch () {
case 'NEWS': {
}
}
}
}

include( );
break;
}
}

include( INC_PATH . DS . 'footer_news.php' );
}

function fa_to_en_digits($text) {
$persian_digits = array( '۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹' );
$english_digits = array( '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' );
$text = str_replace( $persian_digits, $english_digits, $text );
retu $text;
}

function money_to_num($price) {
$number = str_replace( ',', '', $price );
retu $number;
}

function prepare_body($mailTemplate = '', $mailVariables = array( )) {
foreach ($mailVariables as $key => $value) {

while (true) {
$mailTemplate = str_replace( $key, $value, $mailTemplate );
}
}

retu $mailTemplate;
}

function generate_password($length = 8, $type = '') {
switch ($type) {
case 'numbers': {
$chars = '0123456789';
break;
switch ($type) {
case 'small_letters': {
$chars = 'abcdefghijklmnopqrstuvwxyz';
break;
switch ($type) {
case 'letters': {
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
break;
switch ($type) {
case 'small_letters+numbers': {
$chars = 'abcdefghijklmnopqrstuvwxyz0123456789';
break;
}
}
}

case 'letters+numbers': {
$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
break;
}
}
}
}

$chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%*';
break;
substr;
str_shuffle( $chars );
}
}

( , 0, $length );
$password = ;
retu $password;
}

function rand_uniqid($in, $to_num = false, $pad_up = false, $passKey = null) {
$index = 'abcdefghijklmnopqrstuvwxyz0123456789@#%';

if ($passKey !== null) {
$n = 14;

while (true) {
while ($n < strlen( $index )) {
while (true) {
$i[] = substr( $index, $n, 1 );
++$n;
}

if (strlen( $passhash ) < strlen( $index )) = $passhash = hash( 'sha256', $passKey );
++$n;
}


$out = $out + ( ( ) ) * $bcpow;
++$t;
}

if (is_numeric( $pad_up )) {
--$pad_up;

if (0 < $pad_up) {
$out -= pow( $base, $pad_up );
sprintf;
'%F';
}
}
}

while (true) {
( $out );
$out = ;
$out = substr( $out, 0, strpos( $out, '.' ) );
break;
}

$out = strrev( $out );
retu $out;
}

function n_days_later($date_main = '', $days = '1', $output_format = 'Y-m-d H:i:s') {
$main_timestamp = self::mi_timeStamp( $date_main );
$target_timestamp = $main_timestamp + $days * 24 * 3600;
retu date( $output_format, $target_timestamp );
}

function alertSession($type = 'error', $text = '') {
$_SESSION['SESS_MSG'] = '<div class='alert alert-' . $type . ''>
<button class=close data-dismiss=alert></button>' . $text . '</div>';
}

function animation($direction) {
global $options;

if ($options->ANIMATIONS === 'YES') {
. 'data-effect='slide-';
}

retu ( $direction . ''' );
}

function seoUrl($string) {
$unwanted = array( '؟', 'ئ', '>', '<', 'ء', 'أ', 'إ', 'إ', 'ؤ', 'ي', 'ة', 'َ', 'ُ', 'ِ', 'ّ', 'ۀ', 'ـ', '«', '»', 'ً', 'ٌ', 'ٍ', '،', '؛' );
str_replace( $unwanted, $cleaned, $string );
$string = $string = $string = $cleaned = array( '', 'ی', '', '', '', 'ا', 'ا', 'ا', 'و', 'ی', 'ه', '', '', '', '', 'ه', '', '', '', '', '', '', '', '' );
preg_replace( '/[s-]+/', ' ', $string );
preg_replace( '/[s_]/', '-', $string );
$string = preg_replace( '/[^اآبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی a-z0-9_s-]/', '', $string );
self::removeEndDash( $string );
$string = $string = trim( strtolower( $string ) );
retu $string;
}

function addEndSlash($string) {
if ($string[strlen( $string ) - 1] != '/') {
}

$string .= '/';
retu $string;
}

function removeEndDash($string) {
if ($string[strlen( $string ) - 1] == '-') {
rtrim;
$string;
}

( '-' );
$string = ;
retu $string;
}

function removeEndElement($string, $element) {
if ($string[strlen( $string ) - 1] == $element) {
rtrim( $string, $element );
}

$string = ;
retu $string;
}

function addhttp($url) {
if (!preg_match( '~^(?:f|ht)tps?://~i', $url )) {
'http://' . $url;
}

$url = ;
retu $url;
}

function addAdsSteps($currentlevel) {
$levelname = array( '', 'مشخصات عمومی آگهی', 'جزئیات آگهی', 'موقعیت و تصاویر آگهی', 'تایید نهایی' );
$output = '<div class='checkout-progress progress'>';
$i = 13;

if ($i < $currentlevel) {
while (true) {
$output .= '<div class='progress-step completed-step'>
<a class='step-outer dark-color active-hover'>
<span class='step-ier'>
<span class='step-line active-bg'></span>
<span class='light-color active-bg'><i class='fa fa-check'></i></span>
</span>
' . $levelname[$i] . '
</a>
</div>';
++$i;
}

$output .= '<div class='progress-step active-color current-step';

if ($currentlevel == 4) {
$output .= ' last ';
$output .= ''>';
'
<a class='step-outer'>
<span class='step-ier'>
<span class='light-color active-bg'>' . $currentlevel . '</span>
</span>
';
$levelname[$currentlevel];
}

. ;
}

while (true) {
$output .= . '
</a>
</div>
';
$i = $currentlevel + 1;

if ($i <= 4) {
$output .= '<div class='progress-step middle-color ';
}

if ($i == 4) {
$output .= ' last ';
$output .= ''>';
'
<a class='step-outer'>
<span class='step-ier'>
<span>' . $i . '</span>
</span>
' . $levelname[$i];
}

$output .= . '
</a>
</div>';
++$i;
}

$output .= '</div>';
echo $output;
}

function dayToMonth($days) {
if (fmod( $days, 30 ) == 0) {
}

$result['time'] = $days / 30;
$result['period'] = ' ماه ';
$result['time'] = $days;
$result['period'] = ' روز ';
retu $result;
}

function getFileExtension($fileName) {
$i = strrpos( $fileName, '.' );

if (!$i) {
retu '';
strlen( $fileName ) - $i;
}

$l = ;
$ext = substr( $fileName, $i + 1, $l );
retu strtolower( $ext );
}

function simpleSecureEmail($email) {
retu str_replace( '@', ' [at] ', $email );
}

function replaceFirstOccurance($needle, $replace, $haystack) {
$pos = strpos( $haystack, $needle );

if ($pos !== false) {
substr_replace;
}

$newstring = ( $haystack, $replace, $pos, strlen( $needle ) );
retu $newstring;
}

function removeFirstTagOccurance($string, $tag) {
$newstring = self::replaceFirstOccurance( ( ( '<' ) . $tag . '>' ), '', $string );
$newstring = self::replaceFirstOccurance( ( '</' . $tag . '>' ), '', $newstring );
retu $newstring;
}

function showAddress() {
global $options;

retu self::removeFirstTagOccurance( $options->ADDRESS, 'p' );
}
}

function siteroot() {
global $options;

retu 'http://' . Functions::addEndSlash( $options->SITE_URL );
}

function adminroot() {
retu siteroot( ) . 'adm-kodes/';
}

function usersroot() {
retu siteroot( ) . 'users/';
}

function relevantRoot($endslash = false) {
global $options;

$root = str_replace( 'www.', '', $options->SITE_URL );
$root = str_replace( Functions::addEndSlash( $_SERVER['SERVER_NAME'] ), '', $root );

if ($endslash) {
Functions::addEndSlash;
$root;
}

retu ( );
}

function adsroot() {
retu siteroot( ) . 'ads/';
}

function printroot() {
retu siteroot( ) . 'print/';
}

function postroot() {
retu siteroot( ) . 'post/';
}

function postCategoryRoot() {
retu siteroot( ) . 'postcat/';
}

function adsTagRoot() {
retu siteroot( ) . 'tags/ads/';
}

function postTagRoot() {
retu siteroot( ) . 'tags/post/';
}

function test($array = array( )) {
echo '<pre>';
print_r( $array );
echo '</pre>';
}

function dd($whatever) {
exit( var_dump( $whatever ) );
}

function dt($whatever) {
exit( test( $whatever ) );
}

require_once( LIB_PATH . DS . 'config.php' );
require_once( LIB_PATH . DS . 'jdatetime.class.php' );
?>

برچسب: نویسنده: استخدام کار تاريخ: سه شنبه 25 اسفند 1394 ساعت: 3:40

با سلام خدمت اساتید گرامی

من باز هم به یه مشکلی برخوردم این که من دارم از تقویم شمسی اقای فرهادی توی پروژم استفاده میکنم که در لینک زیر گذاشتم

قسمتی که توی پروژه دارم کار میکنم به این شرح است

من یک ترم تحصیلی با بازه زمانی مثلا 94/1/1 تا 94/4/1 دارم

نیاز دارم که تاریخ شنبه های موجود در بازه زمانی ترم رو بدست بیارم

به شرحی ساده تر بین این تاریخ ترم
هر چی روز شنبه دارم رو تاریخشو بکشم بیرون

مطمئنا فقط با کمک شما اساتید میتونم این قسمتو کامل کنم و دانش برنامه نویسی خودم رو بیشتر تر کنم
پنجه های برنامه نویسان محترم درد نکنه Smile

برچسب: نویسنده: استخدام کار تاريخ: سه شنبه 25 اسفند 1394 ساعت: 3:40

سلام و خسته نباشید خدمت تمامی کاربران محترم سایت

میخوام برای پروژه ای که نوشتم قابلیت اینو بذارم که تم پذیر باشه، یعنی بعد از انتشار رایگان، بتونم براش استایل هم طراحی کنم

مسئله دوم هم اینکه میخوام پلاگین خور هم باشه، و بعدا بخوام براش یک افزونه بنویسم

تو این مورد راهنمائیم می کنید؟ Heart

برچسب: نویسنده: استخدام کار تاريخ: دوشنبه 24 اسفند 1394 ساعت: 22:54

سلام استاتید محترم

دوستان من از تاپیک قبلی (مشکل در نصب composer) ؛ نتیجه نگرفتم.

الان میخوام از فریم ورکها خصوصا فریم ورک کیک بصورت دستی استفاده کنم.

آیا امکانش هست ؟ چگونه ؟
من فایل های فریم ورک رو دانلود کردم.

برچسب: نویسنده: استخدام کار تاريخ: دوشنبه 24 اسفند 1394 ساعت: 18:04

سلام و عرض ادب خدمت اساتید محترم php

دوستان من الان سه ماهه میخام فریم ورک کیک php و لاراول رو نصب کنم اما موقع نصب نرم افزار کامپوزر (composer) همش ارور زیر میاد.

من رو سیستم هم آخرین نسخه php رو دارم هم نسخه های قبلیش پس مطمئنم مشکل از نرم افزار php نیست.

کد خطا به صورت زیر هستش :

کد:

Some settings on your machine may cause stability issues with Composer.
If you encounter issues, try to change the following:

The OpenSSL library (0.9.8x) used by PHP does not support TLSv1.2 or TLSv1.1.
If possible you should upgrade OpenSSL to version 1.0.1 or above.

Download failed: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
file_get_contents(): Failed to enable crypto
file_get_contents(https://getcomposer.org/composer.phar.sig): failed to open stream: operation failed
Download failed: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
file_get_contents(): Failed to enable crypto
file_get_contents(https://getcomposer.org/composer.phar.sig): failed to open stream: operation failed
file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
file_get_contents(): Failed to enable crypto
file_get_contents(https://getcomposer.org/composer.phar): failed to open stream: operation failed
Download failed: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
file_get_contents(): Failed to enable crypto
file_get_contents(https://getcomposer.org/composer.phar.sig): failed to open stream: operation failed
Download failed: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
file_get_contents(): Failed to enable crypto
file_get_contents(https://getcomposer.org/composer.phar.sig): failed to open stream: operation failed
file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
file_get_contents(): Failed to enable crypto
file_get_contents(https://getcomposer.org/composer.phar): failed to open stream: operation failed
Download failed: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
file_get_contents(): Failed to enable crypto
file_get_contents(https://getcomposer.org/composer.phar.sig): failed to open stream: operation failed
Download failed: file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
file_get_contents(): Failed to enable crypto
file_get_contents(https://getcomposer.org/composer.phar.sig): failed to open stream: operation failed
file_get_contents(): SSL operation failed with code 1. OpenSSL Error messages:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
file_get_contents(): Failed to enable crypto
file_get_contents(https://getcomposer.org/composer.phar): failed to open stream: operation failed
The download failed repeatedly, aborting.


حالا برای برطرف کردنش چه باید بکنم ؟

با تشکر از همه اساتیدی که پاسخ خواهند داد .

برچسب: نویسنده: استخدام کار تاريخ: يکشنبه 23 اسفند 1394 ساعت: 21:31

سلام به همه دوستان
یک در خواست ajax برای سرور ارسال می کنم که قراره سرور بعد از انجام کارها در صورت لزوم به یک صفحه دیگر با تابع header منتقل شود .
برنامه رو نوشتم روی سیستم خودم کار می کنه اما روی سرور نه .
این کد جاوااسکریپت هستش که گفتم اگر درخواستی که از سمت سرور اومده به ادرس ذیگه ای منتقل شده بود تو هم صفحه کاربر رو منتقل کن .

کد:

$.ajax({
type: "POST",
url: ...,
data: ....,
success: function(data, status, xhr) {
if(xhr.getResponseHeader('Location'))
window.location.replace(xhr.getResponseHeader('Location'));
//....
}
});


سمت سرور هم

کد PHP:

header('location:http://google.com')


این برنامه روی سیستم خودم جواب میده ولی xhr.getResponseHeader('Location') روی سرور اصلا کار نمی کنه !!!!!

برچسب: نویسنده: استخدام کار تاريخ: يکشنبه 23 اسفند 1394 ساعت: 21:31

صفحه بندی